export interface IDispatchAction <ActionType = string, ActionPayload = any> {
  type: ActionType;
  payload?: ActionPayload;
}

export type TReducer = <
  State extends Record<string, any>,
  Action extends IDispatchAction
> (state: State, action: Action) => State; 